﻿using System;
using System.Collections.Generic;
using System.Linq;
using Crosland.Automotriz.Entidad;
using System.Data.SqlClient;


namespace Crosland.Automotriz.Data.Dao.Linq
{
    public class clsT_Ven_Sell_In_Out_StockDAO
    {
        private readonly DM_CROSLAND_20130417Entities ContextoDeObjs = new DM_CROSLAND_20130417Entities();

        public List<T_VEN_SELL_IN_OUT_STOCK_EXTERNO> Listar(int ANIO, int MES, int id_org_vta, int id_cliente, String DES_MARCA)
        {
            var p = new object[] { new SqlParameter("@num_ano", ANIO), new SqlParameter("@num_mes", MES), new SqlParameter("@id_org_vta", id_org_vta), new SqlParameter("@id_cliente", id_cliente), new SqlParameter("@DES_MARCA", DES_MARCA) };
            var resultado = ContextoDeObjs.ExecuteStoreQuery<T_VEN_SELL_IN_OUT_STOCK_EXTERNO>("exec USP_SELL_IN_OUT_STOCK_REPORTE_EXTRANET @num_ano,@num_mes,@id_org_vta,@id_cliente,@DES_MARCA", p).AsQueryable().ToList();
            return resultado;
        }

        public bool ActualizarCantidad(int id, int Cantidad)
        {
            try
            {
                ContextoDeObjs.ExecuteStoreCommand("update T_Ven_SELL_IN_OUT_STOCK set cant = " + Cantidad.ToString() + " where Id_ven_sell_in_out_stock = " + id.ToString());
                return true;
            }
            catch (Exception)
            {
                return false;
            }
        }


        public List<T_VEN_SELL_IN_OUT_STOCK_INTERNO> ListarIntranet(int ANIO, int MES, int ID_MARCA)
        {
            var p = new object[] { new SqlParameter("@ANIO", ANIO), new SqlParameter("@MES", MES), new SqlParameter("@ID_MARCA", ID_MARCA) };
            var resultado = ContextoDeObjs.ExecuteStoreQuery<T_VEN_SELL_IN_OUT_STOCK_INTERNO>("select * from FU_SELL_IN_OUT_STOCK_REPORTE_INTRANET(@ANIO,@MES,@ID_MARCA)", p).AsQueryable().ToList();
            return resultado;
        }

        public List<T_VEN_SELL_IN_OUT_STOCK_INTERNO> ListarIntranetAnual(int ANIO, int ID_MARCA)
        {
            var p = new object[] { new SqlParameter("@ANIO", ANIO), new SqlParameter("@ID_MARCA", ID_MARCA) };
            var resultado = ContextoDeObjs.ExecuteStoreQuery<T_VEN_SELL_IN_OUT_STOCK_INTERNO>("select * from FU_SELL_IN_OUT_STOCK_REPORTE_INTRANET_ANUAL(@ANIO,@ID_MARCA)", p).AsQueryable().ToList();
            return resultado;
        }

        public List<T_VEN_SELL_IN_OUT_STOCK_INTERNO> ListarIntranetAnual(int ANIO, int ID_MARCA, string Supervisor)
        {
            var p = new object[] { new SqlParameter("@ANIO", ANIO), new SqlParameter("@ID_MARCA", ID_MARCA) };
            var resultado = ContextoDeObjs.ExecuteStoreQuery<T_VEN_SELL_IN_OUT_STOCK_INTERNO>("select * from FU_SELL_IN_OUT_STOCK_REPORTE_INTRANET_ANUAL(@ANIO,@ID_MARCA) where Supervisor = '" + Supervisor + "'", p).AsQueryable().ToList();
            return resultado;
        }

        public List<T_VEN_SELL_IN_OUT_STOCK_SUPERVISOR> ListarIntranetSupervisor(int ANIO, int MES, int ID_MARCA, int ID_VENDEDOR)
        {
            var p = new object[] { new SqlParameter("@ANIO", ANIO), new SqlParameter("@MES", MES), new SqlParameter("@ID_MARCA", ID_MARCA), new SqlParameter("@ID_VENDEDOR", ID_VENDEDOR) };
            var resultado = ContextoDeObjs.ExecuteStoreQuery<T_VEN_SELL_IN_OUT_STOCK_SUPERVISOR>("select * from FU_SELL_IN_OUT_STOCK_REPORTE_INTRANET_SUPERVISOR(@ANIO,@MES,@ID_MARCA,@ID_VENDEDOR)", p).AsQueryable().ToList();
            return resultado;
        }

        public List<T_VEN_SELL_IN_OUT_STOCK_SUPERVISOR> ListarIntranetSupervisor_ORDER_REAL_TRANSITO(int ANIO, int MES, int ID_MARCA, int ID_VENDEDOR)
        {
            var p = new object[] { new SqlParameter("@ANIO", ANIO), new SqlParameter("@MES", MES), new SqlParameter("@ID_MARCA", ID_MARCA), new SqlParameter("@ID_VENDEDOR", ID_VENDEDOR) };
            var resultado = ContextoDeObjs.ExecuteStoreQuery<T_VEN_SELL_IN_OUT_STOCK_SUPERVISOR>("select * from FU_SELL_IN_OUT_STOCK_REPORTE_INTRANET_SUPERVISOR_ORDER_REAL_TRANSITO(@ANIO,@MES,@ID_MARCA,@ID_VENDEDOR)", p).AsQueryable().ToList();
            return resultado;
        }

    }
}
